package com.sprouting.ops.dao;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sprouting.ops.interfaces.BaseDaoMapper;
import com.sprouting.ops.model.OpsUser;
import com.sprouting.ops.model.qo.UserQo;
import com.sprouting.ops.model.vo.UserCompositeVo;
import com.sprouting.ops.model.vo.UserSimpleVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * (User)表数据库访问层
 *
 * @author longx
 * @since 2023-03-19 22:44:35
 */
public interface OpsUserDao extends BaseDaoMapper<OpsUser> {

    /**
     * 根据用户名查询
     * @param loginName 登录用户名
     * @return 用户
     */
    OpsUser getByUserLoginName(String loginName);

    /**
     * 根据部门ID查询一条绑定该ID的用户信息
     * @param deptId 部门ID
     * @return
     */
    OpsUser getByDeptIdTop1(String deptId);

    /**
     * 获取部门的人员
     * @param deptId 部门ID
     * @return
     */
    List<OpsUser> getDeptUser(String deptId);

    /**
     * 根据登录用户名查询用户，并过滤指定ID
     * @param id 要过滤的ID
     * @param loginName 用户名，有且唯一
     * @return
     */
    OpsUser getByUserNameFilterId(@Param("id") String id, @Param("loginName") String loginName);

    /**
     * 分页查询用户
     * @param page 分页参数
     * @param query 查询参数
     * @return
     */
    Page<UserCompositeVo> getUserPage(Page page, @Param("query") UserQo query);
}

